import store from './store'
import router from './router'
// 导入nprogress
import nprogress from 'nprogress'
import 'nprogress/nprogress.css'
// 前置守卫
// 设置白名单 -- 不需要登录的页面
const whiteList = ['/login', '/404']
router.beforeEach(async(to, from, next) => {
  // 路由跳转加载进度条
  nprogress.start()
  // 如果去的页面在白名单中，不判断，直接去
  if (whiteList.includes(to.path)) {
    next()
  } else {
    // 判断是否登录
    if (store.getters.token) {
      // 已登录
      // 判断是否是登录页
      if (to.path === '/login') {
        // 是，跳转至首页
        next('/')
      } else {
        // 如果没有用户信息，才发起请求
        if (!store.getters.userId) {
          await store.dispatch('user/getProfile')
        }
        // 否，放行
        next()
      }
    } else {
      // 未登录，跳转登录页
      next('/login')
    }
  }
})
// 后置钩子
router.afterEach((to, from) => {
  // 路由跳转完毕，结束进度条
  nprogress.done()
})
